A database management system (DBMS) generally includes computer hardware running system software for creating and managing databases. Some examples of a DBMS include MySQL, PostgreSQL, MongoDB, Microsoft SQL Server, Oracle, Sybase, SAP HANA, and IBM DB2. The DBMS provides users and programmers with a systematic way to create, retrieve update and manage data in a database. Examples of databases include relational database, flat database, object oriented database, hierarchical database etc.
Data in a relational database of a DBMS can be stored in relational tables. In a relational table, data is organized into one or more tables comprising rows (also referred to as records or tuples) and columns (also referred to as attributes). A row of the relational table can represent a type of entity, and a column can represent values corresponding to the type of entity. Data in the relational table (e.g., values in a column) can be organized in data blocks. Each time a user requests access to a data block in the table, the DBMS can sequentially search the entire table. However, sequential searches can be inefficient, especially when the database is stored in a storage disk that is slow to respond to a search request (query).
Data in a database (e.g., a data block) can be efficiently accessed by using a data index. The data index can include a copy of a selected column of the relational table along with the memory address of data blocks in the selected column. When a user requests access to a data block, a search is performed in the data index. If a match is found, the DBMS can directly access the data block in the database. Hence, data index obviates sequential searching in the database, and can therefore allow accessing data efficiently.